package com.cpems.system.domain.vo;

import java.math.BigDecimal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.cpems.system.domain.EnergyProjectSync;
import lombok.Data;


/**
 * 项目总能效同步视图对象 energy_project_sync
 *
 * @author lyonfive
 * @date 2025-03-26
 */
@Data
@ExcelIgnoreUnannotated
public class EnergyProjectSyncVo {

    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ExcelProperty(value = "")
    private Long energyId;

    /**
     * 当前Cop
     */
    @ExcelProperty(value = "当前Cop")
    private BigDecimal currentCop;

    /**
     * 月度Cop
     */
    @ExcelProperty(value = "月度Cop")
    private BigDecimal monthCop;

    /**
     * 累计Cop
     */
    @ExcelProperty(value = "累计Cop")
    private BigDecimal totalCop;

    /**
     * 达标率(%)
     */
    @ExcelProperty(value = "达标率(%)")
    private BigDecimal complianceRate;

    /**
     * 项目Id
     */
    @ExcelProperty(value = "项目Id")
    private Long projectId;

    /**
     * 备注说明
     */
    @ExcelProperty(value = "备注说明")
    private String remark;

    /**
     * 类型Id
     */
    @ExcelProperty(value = "类型Id")
    private Long typeId;

    /**
     * 项目名称
     */
    @ExcelProperty(value = "项目名称")
    private String projectName;

    /**
     * 目标COP
     */
    @ExcelProperty(value = "目标COP")
    private BigDecimal targetCop;

    public static EnergyProjectSyncVo transferEntityToVO(EnergyProjectSync tagEntity) {
        EnergyProjectSyncVo energyProjectSyncVo = new EnergyProjectSyncVo();
        energyProjectSyncVo.setEnergyId(tagEntity.getEnergyId());
        energyProjectSyncVo.setCurrentCop(tagEntity.getCurrentCop());
        energyProjectSyncVo.setMonthCop(tagEntity.getMonthCop());
        energyProjectSyncVo.setTotalCop(tagEntity.getTotalCop());
        energyProjectSyncVo.setComplianceRate(tagEntity.getComplianceRate());
        energyProjectSyncVo.setProjectId(tagEntity.getProjectId());
        energyProjectSyncVo.setRemark(tagEntity.getRemark());
        energyProjectSyncVo.setTypeId(tagEntity.getTypeId());
        energyProjectSyncVo.setProjectName(tagEntity.getProjectName());
        energyProjectSyncVo.setTargetCop(tagEntity.getTargetCop());
        return energyProjectSyncVo;
    }
}
